package object4.package6;

public class Student implements Comparable<Student>{
    //不要自己定义接口,虽然可以,但是使用标准库提供的版本的一个很大的好处,就是可以无缝的和标准库的其他类对接
    private int id;

    private String name;

    private double score;

    public Student(int id,String name,double score) {
        this.id = id;
        this.name = name;
        this.score = score;
    }
//比较时必须制定出一套详细的比较规则
    public static void main(String[] args) {
        Student s1 = new Student(1,"zhangsan",80);
        Student s2 = new Student(2,"lisi",80);
        //此处是手动调用了compareTo的方法,而不是使用
        System.out.println(s1.compareTo(s2));//注:java是不支持运算符重载的(比如把compareTo重载为>,是不行的)
    }

    @Override
    public int compareTo(Student o) {
        //如果this比o小,返回<0的整数
        //如果this比o大,返回>0的整数
        //如果this与o相等,返回=0的整数
        //可以先按成绩比较,成绩高的学生就大
        //如果成绩相同,再按id比较
        if (this.score < o.score) {
            return -1;
        }
        if (this.score > o.score) {
            return 1;
        } else {
            if (this.id > o.id) {
                return 1;
            }
            if (this.id < o.id) {
                return -1;
            } else {
                return 0;
            }
        }
    }
}
